import request from '@/utils/request'

/**
 * 查询部门列表
 * @param {Object} query - 查询参数
 * @returns {Promise} 返回部门列表数据的Promise对象
 */
export function listDept(query) {
  return request({
    url: '/system/dept/list',
    method: 'get',
    params: query
  })
}

/**
 * 查询部门列表（排除节点）
 * @param {string|number} deptId - 部门ID
 * @returns {Promise} 返回排除指定节点后的部门列表数据的Promise对象
 */
export function listDeptExcludeChild(deptId) {
  return request({
    url: '/system/dept/list/exclude/' + deptId,
    method: 'get'
  })
}

/**
 * 查询部门详细信息
 * @param {string|number} deptId - 部门ID
 * @returns {Promise} 返回指定部门详细信息的Promise对象
 */
export function getDept(deptId) {
  return request({
    url: '/system/dept/' + deptId,
    method: 'get'
  })
}

/**
 * 新增部门
 * @param {Object} data - 部门数据对象
 * @returns {Promise} 返回新增结果的Promise对象
 */
export function addDept(data) {
  return request({
    url: '/system/dept',
    method: 'post',
    data: data
  })
}

/**
 * 修改部门信息
 * @param {Object} data - 部门更新数据对象
 * @returns {Promise} 返回修改结果的Promise对象
 */
export function updateDept(data) {
  return request({
    url: '/system/dept',
    method: 'put',
    data: data
  })
}

/**
 * 删除部门
 * @param {string|number} deptId - 要删除的部门ID
 * @returns {Promise} 返回删除结果的Promise对象
 */
export function delDept(deptId) {
  return request({
    url: '/system/dept/' + deptId,
    method: 'delete'
  })
}
